package com.ruoyi.web.operate.stock.mapper;

import java.util.List;

import com.ruoyi.web.invest.asset.asset.domain.Asset;
import com.ruoyi.web.operate.stock.domain.Stock;
import org.apache.ibatis.annotations.Param;

/**
 * 人才股票Mapper接口
 *
 * @author liuyu
 * @date 2021-08-25
 */
public interface StockMapper {
    /**
     * 查询人才股票
     *
     * @param id 人才股票主键
     * @return 人才股票
     */
    public Stock selectStockById(Long id);


    /**
     * 根据购买人ID查询持有人的对应股票
     *
     * @param createById 购买人ID
     * @return 资产集合
     */
    public List<Stock> selectHoldStockList(@Param(value = "createById") Long createById);

    /**
     * 根据股票id
     *
     * @param selectOwnerIdByStockId 投资人ID
     * @return 资产集合
     */
    public Long selectOwnerIdByStockCode(String stockCode);

    /**
     * 根据拥有人ID查询的人才股票
     *
     * @param owner 所有人ID
     * @return 人才股票
     */
    public  Stock selectStockByOwner(Long owner);

    /**
     * 根据拥有人ID查询的人才股票
     *
     * @param owner 所有人ID
     * @return 人才股票
     */
    public  List<Stock> selectUpdateStockList(Long owner);

    /**
     * 查询人才股票列表
     *
     * @param stock 人才股票
     * @return 人才股票集合
     */
    public List<Stock> selectStockList(Stock stock);

    /**
     * 查询人才股票排名前10
     *
     * @param stock 人才股票
     * @return 人才股票集合
     */
    public List<Stock> selectStockRankTop10List(Stock stock);

    /**
     * 查询人才股票排名前10
     *
     * @param holder 持有人ID
     * @return 人才股票集合
     */
    public List<Stock> selectStockRankTop10ListByHolder(@Param("holder") Long holder);

    /**
     * 正在发行人才股票
     *
     * @param stock 人才股票
     * @return 人才股票集合
     */
    public List<Stock> selectOngoPublishStock(Stock stock);

    /**
     * 完成发行人才股票
     *
     * @param stock 人才股票
     * @return 人才股票集合
     */
    public List<Stock> selectFinishPublishStock(Stock stock);

    /**
     * 新增人才股票
     *
     * @param stock 人才股票
     * @return 结果
     */
    public int insertStock(Stock stock);

    /**
     * 修改人才股票
     *
     * @param stock 人才股票
     * @return 结果
     */
    public int updateStock(Stock stock);

    /**
     * 删除人才股票
     *
     * @param id 人才股票主键
     * @return 结果
     */
    public int deleteStockById(Long id);

    /**
     * 批量删除人才股票
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStockByIds(Long[] ids);
}
